# -*- coding:utf-8 -*-


"""
@version: v1.0
@author: 夏伟坤
@Email: 915624876@qq.com
@software: PyCharm
@project: CXX_UploadFile
@file: file_travel.py
@time: 2021/10/29 17:51
"""
import os

from core.utils.log_helper import logger


class GetFileInfo(object):
    """
    遍历目录下的文件信息，
    传入参数：目录，文件类型
    返回：文件路径，文件名，文件大小
    """

    def __init__(self, dir, fileType):
        self.getFileInfo(dir, fileType)

    def getFileInfo(self, dir, fileType):

        # 判断fileType是excel还是all
        if fileType == "excel":
            return self.getExcleInfo(dir)
        elif fileType == "all":
            return self.getAllFileInfo(dir)
        else:
            return "-1, 暂不支持其它指定类型"

    @staticmethod
    def getExcleInfo(dir):  # 获取文件夹下的所有excel表绝对路径
        """
        获取文件夹下的所有excel表绝对路径，返回列表

        :param userDir: 用户选择的文件夹
        :return: 返回搜索到的所有excel表的列表绝对路径
        """
        try:
            # 判断fileType是excel还是all
            # if fileType == "excel":
            # 执行搜索excel
            excelList = []
            for filepath, dirnames, filenames in os.walk(dir):
                for filename in filenames:
                    path = os.path.join(filepath, filename)  # 文件路径

                    file = os.path.splitext(path)  # 分割文件名和拓展名
                    _, filetype = file  # 获取文件名和拓展名

                    if filetype in [".xlsx", ".xls"]:
                        excelList.append(path)

            if not excelList:
                # 选择的文件夹没有excel文件
                logger.warning("选择的文件夹没有excel文件")
                # QMessageBox.information(self, "警告", f"找不到文件夹：{inputpath}，请检查目录以及单号是否填写有误，")
                # QMessageBox.warning(self, "警告", "选择的文件夹没有excel文件")
                return "选择的文件夹没有excel文件"
            print(excelList)
            return excelList,size


        except Exception as e:
            logger.error(e)

    def getAllFileInfo(self, dir):
        pass
